#include<iostream>
using namespace std;

// 定义一个单例类
class Singleton
{
private:
    // 静态成员变量，用于存储单例对象的指针
    static Singleton* m_instance;
    // 私有构造函数
    Singleton()
    {
        cout << "Singleton()" << endl;
    }
    // 私有析构函数
    ~Singleton()
    {
        cout << "~Singleton()" << endl;
    }
public:
    // 静态成员函数，用于获取单例对象
    static Singleton* getInstance()
    {
        if (m_instance == nullptr)
        {
            m_instance = new Singleton();
        }
        return m_instance;
    }
};

// 静态成员变量，用于存储单例对象的指针
Singleton* Singleton::m_instance = nullptr;

int main()
{
    // 获取单例对象
    Singleton* s1 = Singleton::getInstance();
    Singleton* s2 = Singleton::getInstance();
    Singleton* s3 = Singleton::getInstance();
    Singleton* s4 = Singleton::getInstance();
    Singleton* s5 = Singleton::getInstance();
    Singleton* s6 = Singleton::getInstance();//    Singleton* s7 = new Singleton();
    return 0;
}